package com.yanqu.road.entity.activity.stelesoul.config;

import com.yanqu.road.entity.activity.ActivityConfig;
import com.yanqu.road.entity.activity.ActivityInfo;
import com.yanqu.road.utils.string.StringUtils;

import java.util.List;
import java.util.Map;

public class SteleSoulConfig {

    // 活动信息
    private ActivityInfo activityInfo;

    // 注魂道具（魂元）
    private int consumeItemId;

    // 地图圈数构造
    private List<Integer> mapStructure;

    private Map<Integer, Map<Integer, SteleSoulMapConfig>> steleSoulMapConfig;

    private Map<Integer, SteleSoulPeriodConfig> steleSoulPeriodConfig;

    private Map<Integer, SteleSoulReviewConfig> steleSoulReviewConfigMap;

    public void initActivityConfig(Map<String, ActivityConfig> configMap) {
        // 道具ID
        setConsumeItemId(configMap.get("STONE_SOUL_ENERGY_ITEM_ID").getIntValue());
        setMapStructure(StringUtils.stringToIntegerList(configMap.get("STONE_SOUL_MAP_STRUCTURE").getValue(),"\\|"));
    }

    public ActivityInfo getActivityInfo() {
        return activityInfo;
    }

    public void setActivityInfo(ActivityInfo activityInfo) {
        this.activityInfo = activityInfo;
    }

    public int getConsumeItemId() {
        return consumeItemId;
    }

    public void setConsumeItemId(int consumeItemID) {
        this.consumeItemId = consumeItemID;
    }

    public Map<Integer, Map<Integer, SteleSoulMapConfig>> getSteleSoulMapConfig() {
        return steleSoulMapConfig;
    }

    public void setSteleSoulMapConfig(Map<Integer, Map<Integer, SteleSoulMapConfig>> steleSoulMapConfig) {
        this.steleSoulMapConfig = steleSoulMapConfig;
    }

    public Map<Integer, SteleSoulPeriodConfig> getSteleSoulPeriodConfig() {
        return steleSoulPeriodConfig;
    }

    public void setSteleSoulPeriodConfig(Map<Integer, SteleSoulPeriodConfig> steleSoulPeriodConfig) {
        this.steleSoulPeriodConfig = steleSoulPeriodConfig;
    }

    public List<Integer> getMapStructure() {
        return mapStructure;
    }

    public void setMapStructure(List<Integer> mapStructure) {
        this.mapStructure = mapStructure;
    }

    public Map<Integer, SteleSoulReviewConfig> getSteleSoulReviewConfigMap() {
        return steleSoulReviewConfigMap;
    }

    public void setSteleSoulReviewConfigMap(Map<Integer, SteleSoulReviewConfig> steleSoulReviewConfigMap) {
        this.steleSoulReviewConfigMap = steleSoulReviewConfigMap;
    }

    /**
     * 根据层数取配置,超过最大层数取最后一层
     * @param round
     * @return
     */
    public SteleSoulReviewConfig getSteleSoulReviewConfig(int round) {
        if (round > steleSoulReviewConfigMap.size()) {
            return steleSoulReviewConfigMap.get(steleSoulReviewConfigMap.size());
        }
        return steleSoulReviewConfigMap.get(round);
    }
}
